package com.hmp.recruit.common.controller;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.servlet.http.HttpSession;

import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

import com.hmp.recruit.admin.sys.menu.service.MenuService;
import com.hmp.recruit.admin.sys.menu.vo.MenuVo;

@Controller
public class CommonController {
	
	@Resource
	private MenuService menuService;
	
	@RequestMapping("/index")
	public String index() {
		return "index";  // /WEB-INF/views/index.jsp
	}
	
	/**
	 * 后台首页
	 * @auth 何家明
	 * @date 2018年11月19日 上午10:52:30
	 * @return
	 */
	@RequestMapping("/admin/index")
	public String adminIndex(HttpSession session) {
		if(session.getAttribute("menuList") == null) {
			List<MenuVo> parents = new ArrayList<MenuVo>();
			
			List<MenuVo> menuList = menuService.listAllMenu();
			for (MenuVo menuVo : menuList) {
				if(StringUtils.equals("0", menuVo.getPid())) {  // 查询出所有的父级菜单
					parents.add(menuVo);
				}
			}
			generateMenus(parents, menuList);
			session.setAttribute("menuList", parents);
		}
		return "admin/index";
	}
	/**
	 * 后台欢迎页
	 * @auth 何家明
	 * @date 2018年11月19日 上午10:52:30
	 * @return
	 */
	@RequestMapping("/admin/welcome")
	public String adminWelcome(HttpSession session) {
		return "admin/welcome";
	}

	/**
	 * 生成菜单层级结构
	 * @auth 何家明
	 * @date 2018年11月19日 下午2:32:40
	 * @param menuList
	 */
	private void generateMenus(List<MenuVo> parents, List<MenuVo> menuList) {
		for (MenuVo parent : parents) {
			List<MenuVo> childs = new ArrayList<MenuVo>();
			for (MenuVo son : menuList) {
				if(StringUtils.equals(son.getPid(), parent.getId())) {  // 查询父级下的子级菜单
					childs.add(son);
				}
			}
			generateMenus(childs, menuList);  // 递归生成
			parent.setChildList(childs);
		}
	}
}
